堆疊(Stack)是一種後進先出(LIFO,Last In, First Out)的數據結構。它主要用於在程序執行過程中跟蹤方法的調用順序、臨時存儲局部變量和返回值等。Java中的堆疊結構可以通過java.util.Stack類或使用Deque來實現。
堆疊的操作包含
push(Object item):將元素壓入堆疊的頂端。
pop():從堆疊頂端彈出元素並返回這個元素。
peek():查看堆疊頂端的元素,但不移除它。
isEmpty():檢查堆疊是否為空。
search(Object o):返回元素在堆疊中的位置,從頂部開始計數。
舉例來說
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
//推入元素
stack.push(10);
stack.push(20);
stack.push(30);
//查看堆疊頂部的元素
System.out.println("Top element: " + stack.peek());
//彈出元素
System.out.println("Popped element: " + stack.pop());
//查看彈出後的頂部元素
System.out.println("Top element after pop: " + stack.peek());
//檢查堆疊是否為空
System.out.println("Is stack empty? " + stack.isEmpty());
}
}
最後執行的結果就會如下
Top element: 30
Popped element: 30
Top element after pop: 20
Is stack empty? False